-------------------------------------------------------------- Microsoft(R) ActiveX(R) Data Objects версии 2.1. Файл Readme -------------------------------------------------------------- (c) Корпорация Microsoft, 1998. Все права защищены. Этот документ содержит сведения, дополняющие документацию Microsoft ADO documentation. ---------- СОДЕРЖАНИЕ ---------- 1. ОПИСАНИЕ ПРОДУКТА 2. НОВЫЕ ВОЗМОЖНОСТИ 2.1 Seek и Index 2.2 Обновление записей и согласование 2.3 Служба доступа Microsoft OLE DB Persistence Provider 2.4 Служба структурирования данных Microsoft Data Shaping Service для OLE DB 2.5 Удаленная служба доступа Microsoft OLE DB Remoting Provider 3. ТЕХНИЧЕСКИЕ ЗАМЕЧАНИЯ 3.1 Повышенная безопасность 3.2 Запрещенные действия 3.3 Настройка параметров безопасности 4. ИЗВЕСТНЫЕ ОШИБКИ, ОГРАНИЧЕНИЯ, РЕКОМЕНДАЦИИ И ПОСЛЕДНИЕ ЗАМЕЧАНИЯ ---------------------- 1. ОПИСАНИЕ ПРОДУКТА ---------------------- Объекты ADO (ActiveX Data Objects - Объекты данных ActiveX) представляют собой автоматизированный интерфейс доступа к данным. Доступ к многочисленным источникам данных, включая и ODBC, осуществляется посредством интерфейса OLE DB. Пользователи RDO и DAO должны быстро освоить программирование ADO, поскольку в основу общей разработки ADO положен опыт, накопленный при разработке этих интерфейсов. Служба RDS (Remote Data Service - Служба удаленного доступа к данным) является одним из компонентов ADO, обеспечивающем быстрое и эффективное соединение и работу с данными в приложениях, ориентированных на обозреватель Microsoft Internet Explorer. Она имеет распределенную структуру клиент-сервер, работая по протоколам HTTP, HTTPS (HTTP через Secure Sockets Layer (Уровень защищенных каналов)) и протоколам приложений DCOM. Используя независимые от данных элементы ActiveX, служба RDS предоставляет доступ к данным для программирования в стиле Microsoft Visual Basic(R) для разработчиков сети Web, которым необходимо создавать приложения с распределенной интенсивной обработкой данных для использования в интрасети предприятия и Интернете. -------------------- 2. НОВЫЕ ВОЗМОЖНОСТИ -------------------- В ADO 2.1 появилось несколько новых возможностей для разработчиков. 2.1 Seek и Index С помощью метода Seek и свойства Index можно осуществлять быстрый поиск записей в наборе с использованием индекса. 2.2 Обновление записей и согласование Новый режим "row fix-up" предусматривает дополнительные возможности управления обновлением и согласованием наборов записей, созданных операцией JOIN. Семь новых динамических свойств определяют поведение пяти методов. 2.3 Служба доступа Microsoft OLE DB Persistence Provider Служба доступа Microsoft OLE DB Persistence Provider и методы Save и Open объекта Recordset позволяют сохранять набор записей в файле и загружать этот набор. В этой версии набор записей может быть сохранен в формате XML (Extensible Markup Language - Расширенный язык описания), являющимся стандартным способом определения пользовательских тэгов для данных, передаваемых через Интернет. 2.4 Служба структурирования данных Microsoft Data Shaping Service для OLE DB Служба структурирования данных Microsoft для OLE DB предоставляет следующие возможности: 2.4.1 Повторное формирование набора записей. Для реализации этой возможности было введено свойство Name, необходимое для продолжения соединения. 2.4.2 Выполнение агрегатных вычислений по столбцам любого уровня структурированного набора записей, не только по ближайшим дочерним. Для этого используются полностью определенные имена разделов, по которым формируется путь к нужному уровню и столбцу. 2.4.3 Параметризованные команды COMPUTE с произвольным числом вложенных предложений COMPUTE между предложением PARAMETER и аргументом. 2.5 Удаленная служба доступа Microsoft OLE DB Remoting Provider Удаленная служба доступа Microsoft OLE DB Remoting Provider стала стандартной службой и приобрела дополнительные динамические свойства, улучшающие производительность, управляемость и совместимость с объектами ADO 2.0. ------------------------ 3. ТЕХНИЧЕСКИЕ ЗАМЕЧАНИЯ ------------------------ 3.1 Повышенная безопасность В этой версии улучшена система безопасности объектов ADO и RDS; выполнение некоторых операций запрещено при работе с обозревателем Internet Explorer в "безопасном" режиме. 3.1.1. Зоны Каждой "зоне" в обозревателе Internet Explorer 4.0 вы можете назначить свои параметры безопасности, определив, таким образом, поведение объектов ADO и RDS в этих зонах. В обозревателе Internet Explorer 4.0 определено четыре зоны: * зона Интернета; * местная зона (интрасеть); * зона ограниченных узлов; * зона надежных узлов. 3.1.2. Уровни безопасности Для каждой из перечисленных зон можно задать один из следующих уровней безопасности: * "Высокий"; * "Средний"; * "Низкий"; * "Особый". Как и другие элементы управления ActiveX, для работы объектов ADO/RDS во всем обозревателе Internet Explorer 4.0, следует использовать "Средний" или "Высокий" уровень безопасности. "Особый" уровень безопасности используется для настройки поведения объектов ADO/RDS на работу в защищенном или в обычном режиме. 3.2 Запрещенные действия По умолчанию, любое небезопасное действие объекта ADO/RDS в обозревателе Internet Explorer 4.0 выполняется только при его подтверждении пользователем, когда доступ к страницам осуществляется в местной зоне (интрасети), зоне надежных узлов и зоне Интернета. Небезопасные операции объектов ADO/RDS по умолчанию запрещены для страниц из зоны ограниченных узлов. Ниже приводится описание поведения объектов ADO/RDS при работе в этих режимах. 3.2.1 Безопасные объекты Следующие объекты считаются "безопасными". Небезопасные действия (описанные в 3.2.3) запрещены в защищенной среде (по умолчанию, в обозревателе Internet Explorer, если не используются специальные настройки для работы в незащищенном режиме) и разрешены в незащищенной (например, в Visual Basic). а. Объект RDS.DataControl б. Объект RDS.DataSpace в. Объект ADO Recordset 3.2.2 Незащищенные объекты На следующие объекты защита не распространяется. Они могут создаваться напрямую или по усмотрению пользователя при работе в защищенной среде. а. Объект RDSServer.DataFactory б. Объект ADO Connection в. Объект ADO Command 3.2.3 Небезопасные операции над защищенными объектами Небезопасные операции над защищенными объектами распространяются на RDS.DataControl, RDS.DataSpace, ADO Recordset. Эти операции запрещены в защищенной среде, но разрешены в среде без защиты. а. RDS.DataControl i) Все двухсвязные сценарии и сценарии DCOM с объектом RDS.DataControl. Это означает, что устанавливать соединения с базой данных на локальном компьютере или на серверах по протоколу DCOM невозможно. ii) Все трехсвязные операции по протоколу HTTP запрещаются для сервера, с которого загружается страница. Свойство Server объекта RDS.DataControl должно быть равно имени узла (http://server), с которого загружается страница. б. RDS.DataSpace i) Все двухсвязные сценарии и сценарии DCOM с объектом RDS.DataSpace. Это означает, что использовать объект RDS.DataSpace для вызова действующих объектов на локальном компьютере или по протоколу DCOM невозможно. ii) Все трехсвязные сценарии по протоколу HTTP запрещены серверу, с которого происходит загрузка страниц. Второй параметр метода CreateObject в объекте DataSpace должен указывать на тот же сервер, с которого загружается страница. в. ADO Recordset i) Создание соединения со службой доступа, отличной от MS Remote. Строка соединения должна начинаться с "Provider=MS Remote". Тэг "Remote Server" в строке подключения должен совпадать с именем сервера, с которого производится загрузка страницы. Локальные двухсвязные соединения и соединения DCOM не допускаются. ii) Локальные постоянные действия, как сохранение набора записей и его загрузка из файла на локальном компьютере. 3.3 Настройка параметров безопасности Поведение объектов ADO/RDS определяется параметром "Инициализировать и выполнять сценарии элементов ActiveX, не помеченных как безопасные". Настройки безопасности задаются соответствующим текущей зоне уровнем безопасности. Значения этого параметра, принимаемые по умолчанию для местной зоны (интрасети): Уровень безопасности = Высокий Значение = "Отключить" Уровень безопасности = Средний Значение = "Отключить" Уровень безопасности = Низкий Значение = "Запрашивать" О значениях этого параметра для других зон безопасности можно узнать из документации к обозревателю Internet Explorer. Изменение уровня безопасности влияет на поведение объектов ADO Recordset в обозревателе при отсутствии соединения. Если требуется разрешить небезопасные операции так, чтобы не получать каждый раз предупреждения, в качестве значения указанного выше параметра следует указать "Использовать". Если выполняется небезопасная операция (например, сохранение набора записей Recordset на локальном компьютере) над объектом ADO Recordset из RDS.DataControl, для указанного параметра следует выбрать значение "Использовать". Для таких объектов Recordset (из RDS.DataControl) значение "Запрашивать" действует так же, как и "Отключить". Значения параметров настройки по умолчанию можно переопределить, выбрав нужные значения для указанного выше параметра. Небезопасные операции можно отключить совсем (см. выше) или включить предупреждение перед выполнением какого-нибудь действия. Задать свои значения можно для любой зоны безопасности. Для определения настроек зоны безопасности следует выполнить следующие действия. ВНИМАНИЕ! Включайте параметр "Инициализировать и выполнять сценарии элементов ActiveX, не помеченных как безопасные" (см. ниже, шаг 5) с большой осторожностью, этим вы разрешаете выполнение на Web-странице ЛЮБОГО элемента ActiveX, безопасного или нет (в котором может содержаться код сценария, опасный для работы вашего компьютера). Рекомендуется выполнять это действие только для местной зоны (интрасети) или зоны надежных узлов, но не для зоны Интернета. 1. В меню "Вид" обозревателя Internet Explorer 4.0 выберите команду "Свойства обозревателя" для вызова диалогового окна "Свойства обозревателя". Перейдите на вкладку "Безопасность". 2. Выберите из раскрывающегося списка "Зона" зону, настройки для которой требуется изменить. 3. Выберите переключатель "Особый" для указанной зоны. Кнопка "Настройка" станет доступной. 4. Нажмите кнопку "Настройка", что бы открыть диалоговое окно "Настройка правил безопасности". 5. Для разрешения небезопасных операций (п. 3.2.3) объектам ADO/RDS без предупреждений, выберите переключатель "Использовать" для параметра "Инициализировать и выполнять сценарии элементов ActiveX, не помеченных как безопасные" в диалоговом окне "Настройка правил безопасности". Нажмите кнопку OK. 6. Если при выполнении небезопасных операций объектами ADO/RDS следует выводить предупреждение (п. 3.2.3), выберите "Запрашивать" для параметра "Инициализировать и выполнять сценарии элементов ActiveX, не помеченных как безопасные" в диалоговом окне "Настройка правил безопасности". Нажмите кнопку OK. 7. Если необходимо полностью запретить небезопасные операции (п. 3.2.3) над объектами ADO/RDS, в диалоговом окне "Настройка правил безопасности" в качестве значения параметра "Инициализировать и выполнять сценарии элементов ActiveX, не помеченных как безопасные" выберите "Запретить". Нажмите кнопку OK. 8. При необходимости повторите эти действия для настройки параметров других зон безопасности. 9. Нажмите кнопку OK. После этого действие объектов ADO/RDS будет определяться выбранными указанными параметрами настройки. Эти параметры настройки ограничивают следующие действия объектов ADO/RDS (п. 3.2.3): установление локальных двусвязных соединений, работа по протоколу DCOM, подключение к серверу, отличному от того, с которого была загружена страница, сохранение и загрузка набора записей в файлы на локальном компьютере. При установленных значениях "Запрашивать", появится следующее предупреждение об опасной операции. "Страница обращается к источнику данных, расположенному на другом домене. Вы разрешаете это?" На сообщение есть два варианта ответа: "Да" и "Нет". Если нажать кнопку "Да", действие будет выполнено. -------------------------------------------------------------------- 4. ИЗВЕСТНЫЕ ОШИБКИ, ОГРАНИЧЕНИЯ, РЕКОМЕНДАЦИИ И ПОСЛЕДНИЕ ЗАМЕЧАНИЯ -------------------------------------------------------------------- 4.1 Представление клиента в службе RDS в данный момент не поддерживается из-за отсутствия поддержки со стороны операционной системы. 4.2 Чтобы настроить сервер на работу со службой RDS, при создании виртуальных серверов в Internet Information Server 4.0 необходимо выполнить два дополнительных действия. А) Во время установки сервера установите флажок "Allow Execute Access" (Разрешить выполнение доступа). Б) Переместите файл msadcs.dll в каталог vroot\msadc, где vroot - основной каталог виртуального сервера. 4.3 При использовании службы RDS на сервере IIS число потоков, создаваемых в расчете на один процессор, можно изменять в системном реестре, в разделе Web-сервера. Число потоков влияет на производительность при большом потоке данных или при больших запросах. Наилучший результат достигается опытным путем. Значение находится в следующем разделе: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCThreads где ADCThreads - добавляемый пользователем параметр типа REG_DWORD. Допустимые значения лежат в диапазоне от 1 до 50. По умолчанию значение равно 6. Если значение превышает 50, будет использоваться максимальное значение (50). Пользователю не требуется создавать этот параметр; по умолчанию значение в системном реестре отсутствует. 4.4 По умолчанию объекты ADO устанавливаются в "безопасной" конфигураци RDS Server DataFactory. Безопасный режим для компонентов RDS Server означает выполнение следующих условий. 1. Наличие обработчика с DataFactory (определяется параметром системного реестра) 2. Стандартный обработчик msdfmap.handler зарегистрирован, указан в списке безопасных обработчиков и отмечен как обработчик по умолчанию. 3. Файл Msdfmap.ini установлен в каталог Windows. Необходимо настроить этот файл в соответствии со своими потребностями перед использованием службы RDS в трехсвязном режиме. При необходимости можно настроить установку DataFactory без ограничений. DataFactory может использоваться напрямую, без дополнительного обработчика. Пользователи могут продолжать применять дополнительный обработчик, изменяя строки подключения, однако это не требуется. В комплекте поставляется файл handsafe.reg, с помощью которого можно настроить записи системного реестра на безопасную конфигурацию. Выполните файл handsafe.reg для работы в безопасном режиме. В комплекте поставляется файл handunsf.reg, с помощью которого можно настроить записи системного реестра на незапрещенную конфигурацию. Выполните файл handunsf.reg для работы в незащищенном режиме. Подробнее об использовании возможностией настройки обработчиков в службе RDS можно узнать из технической статьи "Using the Customization Handler Feature in RDS 2.0", доступной по адресу http://www.microsoft.com/data/techmat.htm 4.5 Метод Find предназначен для поиска записи набора Recordset в определенном направлении по заданным условиям, начиная с текущей записи. Если текущей записи перед вызовом метода Find задано не было, будет выведено сообщение об ошибке. 4.6 Для использования событий объектов ADO FetchProgress и FetchComplete в Visual Basic, требуется, по крайней мере, Visual Basic версии 6. 4.7 Следующие операции считаются "безопасными" для использования в выражениях CALC структурированных данных: Abs, Asc, Atn, CBool, CByte, CCur, CDate, CDbl, Chr, ChrB, ChrW, Chr$, ChrB$, CInt, CLng, Cos, CSng, CStr, Cvar, CVDate, CVErr, Date, Date$, DateAdd, DateDiff, DatePart, DateSerial, DateValue, Day, DDB, Error, Error$, Exp, Fix, Format, Format$, FV, Hex, Hex$, Hour, IIF, InStr, Int, IPmt, IRR, IsDate, IsEmpty, IsError, IsNull, IsNumeric, IsObject, LCase, LCase$, Left, LeftB, Left$, LeftB$, Len, Log, LTrim, LTrim$, Mid, Mid$, Minute, MIRR, Month, Now, NPer, NPV, Oct, Oct$, Pmt, PPmt, PV, QBColor, Rate, RGB, Right, RightB, Right$, RightB$, Rnd, RTrim, RTrim$, Second, Sgn, Sin, SLN, Space, Space$, Sqr, Str, Str$, StrComp, StrConv, String, String$, SYD, Tan, Time,Time$, Timer, TimeSerial, TimeValue, Trim, Trim$, TypeName, UCase, UCase$, Val, VarType , Weekday, Year 4.8 В ADO 2.1 не поддерживаются постоянные иерархические объекты Recordset в формате XML. 4.9 Невозможно обновить данные в наборе записей, доступном только для чтения, записывая и редактируя их в файле XML. В этом случае при попытке открыть файл с измененным набором записей возникнет ошибка. 4.10 При использовании adUseClient или при удаленной работе с SQL Server 6.5 Service Pack 4, использованное ключевое слово DISTINCT в запросах будет проигнорировано в обновляемых результирующих наборах. Эта ошибка SQL Server, которая будет устранена в следующих пакетах обслуживания. 4.11 Значения DataTypeEnum, указанные в разделе Type Property руководства ActiveX Data Objects Programmer's Reference содержат ошибки. Следующие перечисления указаны в списке, но не существуют и не могут быть использованы: adArray, adByRef, adVector. Следующие значения не указаны в списке, хотя существуют и могут быть использованы. adChapter 4-битовое значение раздела, используется для определения записей в дочернем наборе записей (DBTYPE_HCHAPTER). adDBFileTime Значение времени файла (DBTYPE_DBFILETIME). adFileTime 64-битовое значение, указывает количество 100-наносекундных интервалов с 1 января 1601 года (DBTYPE_FILETIME). adPropVariant PROPVARIANT (DBTYPE_PROP_VARIANT). adVarNumeric Числовое значение (только для объекта Parameter). 4.12 В списке допустимых значений параметра Options метода Execute объектов Connection и Command содержится ошибка. Следующее значение ExecuteOptionEnum по ошибке указано дважды. Должно быть указано только один раз. adCmdTable Выражение CommandText в виде имени таблицы и создание запроса SQL, возвращающего все записи таблицы с заданным в CommandText именем. Следуюшего значения CommandTypeEnum нет в списке, хотя оно существует и может использоваться: adCmdFile Служба доступа будет расценивать CommandText как имя файла. Следующих значений ExecuteOptionEnum в списке не указано, хотя они существуют и могут использоваться: adAsyncFetchNonBlocking Главный поток не устанавливает блокировку при получении выборки. Если требуемая запись не была получена, текущая запись автоматически перемещается в конец файла. adExecuteNoRecords CommandText является командой или хранимой процедурой, которая не возвращает записей (например, команда вставки данных). Если были получены какие-нибудь записи, они игнорируются и не возвращаются. Используется только вместе с adCmdText или adCmdStoredProc. 4.13 В списке значений перечисления QueryType метода OpenSchema объекта Connection содержатся ошибки. Следующих значений в списке не указано, хотя они существуют и могут использоваться. Перечисление Столбцы ограничений adSchemaDBInfoKeywords none adSchemaDBInfoLiterals none adSchemaCubes CATALOG_NAME SCHEMA_NAME CUBE_NAME adSchemaDimensions CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_NAME DIMENSION_UNIQUE_NAME adSchemaHierarchies CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_NAME HIERARCHY_UNIQUE_NAME adSchemaLevels CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_NAME LEVEL_UNIQUE_NAME adSchemaMeasures CATALOG_NAME SCHEMA_NAME CUBE_NAME MEASURE_NAME MEASURE_UNIQUE_NAME adSchemaProperties CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME MEMBER_UNIQUE_NAME PROPERTY_TYPE PROPERTY_NAME adSchemaMembers CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME LEVEL_NUMBER MEMBER_NAME MEMBER_UNIQUE_NAME MEMBER_CAPTION MEMBER_TYPE Оператор дерева (см. ниже) Последние семь значений Enum (с adSchemaCubes до adSchemaMembers) должны использоваться со службой доступа к многомерным данным. Подробнее (включая сведения об определении запрещения оператора дерева для adSchemaMembers) см. справочник "OLE DB for OLAP Programmer's Reference". 4.14 Ошибка в приведенных значениях AffectEnum, указанных в разделе описания метода CancelBatch в руководстве "ActiveX Data Objects Programmer's Reference". Следующих значений в списке не указано, хотя они существуют и могут использоваться: adAffectAllChapters отмена ожидающих изменений во всех разделах. 4.15 Неверно описано значение adModeShareDenyNone ConnectModeEnum в разделе о свойстве Mode. Верное описание: adModeShareDenyNone разрешение другим пользователям открывать соединение с любыми правами. Ни чтение, ни запись не запрещаются. 4.16 Свойство Index раньше возвращало ошибку, если для объекта Recordset не был установлен индекс. В версии ADO 2.1 из пакета обновления 1 для MDAC 2.1 в этом случае просто возвращается пустая строка.